2 Star 2 Fork 1

隐语SecretFlow / interconnection

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

隐私计算平台开放算法协议

背景

本仓库用于存放隐私计算平台开放算法协议接口,旨在将算法接口通过程序化设计语言 Protobuf 更加全面、精确地表述出来,帮助隐私计算平台开发者更好地实施互联互通改造,促进隐私计算算法的互联互通。

协议文档地址:https://www.secretflow.org.cn/docs/interconnection/

本仓库接口符合北京金融科技产业联盟(简称:金科联盟)隐私计算跨平台互联互通团体标准、信通院牵头隐私计算联盟互联互通团体标准要求,其中握手协商部分两个标准略有差异:

  • 金科联盟标准定义了完整的隐私计算平台框架,算法组件运行所需的配置全部由管理层的工作流配置模块(原名 DAG&CONF 模块)下发,因此不再需要握手协议
  • 隐私计算联盟标准并未对算法组件之外的其它模块做过多假设,因此所有算法均有握手协商过程,从而提升开放算法独立部署、运行的可行性

隐语采用可选的握手协商过程,从而同时兼容两大标准。至于开放算法的协议主体在两联盟的标准中一致。

金科联盟标准 隐私计算联盟标准 本仓库
算法运行参数 由管理层工作流配置模块下发 参与方运行握手协商协议自行对齐参数 定义了完整的握手协商接口,如对方采用金科联盟方式,可跳过此部分接口
算法协议主体 协议流程、接口一致 定义了完整的协议主体运行所需接口

相关仓库

仓库 说明
InterOp 金科联盟互联互通研究成果官方仓库
caict-ppca/privacy-computing 隐私计算联盟互联互通研究成果官方仓库
interconnection (本仓库) 隐语收集、定义的互联互通开放算法协议接口、文档
interconnection-impl 互联互通开放算法协议的参考实现,支持 Python & C++ 语言

注: 仓库排名不分先后

Interconnection 仓库结构

.
├── PPCA   # 存放隐私计算联盟归口的标准协议文件副本
├── docs   # 文档网站的网页源代码
└── interconnection    # 所有接口文件
    ├── common     # 通用的接口定义
    ├── handshake  # 所有握手协议相关接口
    │   ├── algos  # 算法层的握手协议接口
    │   ├── op     # 安全算子层的握手协议接口
    │   └── protocol_family    # 密码协议层的握手协议接口
    ├── legacy     # 目前已经废弃的接口文件
    ├── link       # 传输层接口
    ├── runtime    # 算法运行主体所用的接口
    └── service    # 访问第三方公共基础服务所用的接口

当前已经定义的互联互通协议(接口)有:

注:本仓库收集、存放的互联互通接口仅为金科联盟、隐私计算联盟标准的子集,完整的接口、文档请参考各联盟的官方仓库。

握手协议设计范式

隐私计算联盟所有算法协议都包含握手协议和算法主体两部分,其中握手协议用于对齐算法版本、算法运行所需参数等,并遵循一些统一的范式:

  1. 所有算法都复用同一套握手协议,即所有算法的握手请求都用的是 interconnection/handshake/entry.proto 中定义的 HandshakeRequest,所有算法的握手协商结果都使用 HandshakeResponse 格式。
  2. 对于多个参与方的算法,我们为每个参与方赋予一个编号,称为 rank,rank 的数值从 0 开始依次递增。
  3. 握手协议执行时,由非 0 参与方向 rank-0 发送 HandshakeRequest,rank-0 汇总所有参与方的请求后,得出一组公共参数,依次发送 HandshakeResponse,如果参数协商失败,则依次发送错误消息。
  4. HandshakeRequest 中每一类具体的参数项,其命名风格一般为 XxxProposal,HandshakeResponse 中选定的参数项,其命名风格一般为 XxxResult。
  5. 对于某些连续数值型参数,例如深度学习中的 learning_rate 等,我们假设无论参数选择几对功能无影响,对方都应该支持,这一类参数不需要协商,而是由 rank-0 选定一个数值,在 HandshakeResponse 中发给大家。
  6. 对于一些可枚举的功能性参数,HandshakeRequest 用一个列表表示,表示发送者支持列表所列的功能;并且这个列表是有序的,表示发送者更加偏爱列表中靠前的参数。例如 ECDH-PSI 中的椭圆曲线(EC)类型,假如请求列表是 [SM2, CURVE25519],则表示发送者同时支持 SM2 和 CURVE25519,如果其他参与方也同时支持这两种 EC,则协商者应当优先选择 SM2, 因为 SM2 排在前面。当然,如果多个参数方发送的列表顺序是矛盾的,协商者会优先满足大多数参与方的偏爱。

算法协议与传输层关系

算法协议中提到的 proto 一般并不直接用于 RPC 框架,而是用作跨语言、跨版本的序列化、反序列化工具使用。传输层只负责传输裸的二进制 buffer,不感知具体的 proto 格式,下图是一个示例:

 ┌─────────────┐                 ┌─────────────┐
 │  Algorithm  │                 │  Algorithm  │
 └──────┬──────┘                 └──────▲──────┘
        │Serialize                      │
        │proto                          │Deserialize
        │to buffer                      │buffer
 ┌──────▼──────┐                 ┌──────┴──────┐
 │  Transport  │     buffer      │  Transport  │
 │    layer    ├────────────────►│    layer    │
 └─────────────┘   http(s)/rpc   └─────────────┘

示例图:

  1. 左侧的算法将 proto 序列化成 buffer,提交给传输层
  2. 左侧传输层通过网络将数据发送到右侧传输层模块
  3. 右侧算法获取传输层中的 buffer,反序列化成 proto
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

互联互通协议 展开 收起
Starlark 等 3 种语言
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/secretflow/interconnection.git
git@gitee.com:secretflow/interconnection.git
secretflow
interconnection
interconnection
main

搜索帮助